/*
 * Represents an Atom.
 *
 * This class stores all the inherent traits of an Atom in 3D.
 *
 *  Created on: Feb 8, 2011
 *      Author: shaide
 */

#ifndef ATOM_H_
#define ATOM_H_

#define NULL_SYMBOL "XX"

#include <list>
#include <iostream>
#include <openbabel/mol.h>
#include <openbabel/atom.h>
#include <openbabel/obconversion.h>
#include <iostream>


#define N_ELEMS 105


class Atom
{

public:


	//----  Fields  ----
	double _pos[3]; 				//Location in cartesian coordinates
	char const* _symbol;			//The atom symbol
	int _valence;					//Atom valency
	int _class;						//Atom equivalence class
	double _mass;					//Atomic mass
	int _index;

	void printAtom();

	//----  Constructors  ----
	Atom(OpenBabel::OBAtom *obatom);

//	Atom(Atom const&);

private:
	Atom(); //Default ctor
};

#endif /* ATOM_H_ */
